from __future__ import absolute_import, print_function

import os
import sys
import unittest


def _main(modulename):
    """run the tests found in module, printing nothing when all tests pass"""
    module = sys.modules[modulename]
    suite = unittest.defaultTestLoader.loadTestsFromModule(module)
    results = unittest.TestResult()
    suite.run(results)
    if results.errors or results.failures:
        for tc, exc in results.errors:
            print("ERROR:", tc)
            print()
            sys.stdout.write(exc)
        for tc, exc in results.failures:
            print("FAIL:", tc)
            print()
            sys.stdout.write(exc)
        sys.exit(1)


if os.environ.get("SILENT_BE_NOISY"):
    main = unittest.main
else:
    main = _main
